# Table of Contents
# Kotlin 면접 정리
Kotlin
면접 내용을 정리합니다.
# 타입 추론
변수나 상수에 타입을 선언하지 않아도 할당되는 값에 따라 자동으로 타입을 추론해주는 기능
# 늦은 초기화
- Kotlin은 원칙적으로 변수나 상수를 선언과 동시에 초기화해야한다.
- 값이 없다면
Nullable
타입으로도 선언한 후null
이라도 할당해야한다. - 늦은 초기화를 사용하면 선언만 먼저 하고 초기화는 나중에 할 수 있는 방법을 제공한다.
- Kotlin에서는 두 가지 방식의 늦은 초기화를 제공한다.
# lateinit var
- 보통 클래스 내부에서 사용한다.
- 기본 자료형에는 사용할 수 없으며 클래스의 인스턴스에만 사용할 수 있다.
# val by lazy
- 상수에 접근할 때 값이 초기화된다.
# 스코프 함수
run()
: 함수를 호출한 객체가 람다에 암시적으로 전달되며,this
키워드로 접근할 수 있다. 또한 람다식의 마지막 구문이 결과값으로 반환된다.let()
: 함수를 호출한 객체가 람다에 명시적으로 전달되며,it
으로 접근할 수 있다. 또한 람다식의 마지막 구문이 결과값으로 반환된다.apply()
: 함수를 호출한 객체가 람다에 암시적으로 전달되며,this
키워드로 접근할 수 있다. 또한 람다식을 적용한 객체가 반환된다.also()
: 함수를 호출한 객체가 람다에 명시적으로 전달되며,it
으로 접근할 수 있다. 또한 람다식을 적용한 객체가 반환된다.with()
:run()
과 유사하지만 인스턴스를 첫 번째 인자로 전달한다.
# 동일성과 동등성
# 동일성
동일성(Identity)
는 두 객체의 주소값이 같다는 것을 의미한다. Kotlin에서는 ===
연산자로 두 객체의 주소값이 동일한지 비교할 수 있다.
# 동등성
동등성(Equality)
는 두 객체의 속성값이 같다는 것을 의마한다. Kotlin 에서는 ==
연산자로 동등성을 비교할 수 있으며 내부적으로 equal()
메소드가 호출된다.